使用HTML/JavaScript的方式编写一些辅助小工具。

效率提升:使用HTML编写小工具

jskyzero 2021/06/23

为什么是HTML+JavaScript

最初在诸多GUI解决方案中犹豫了,并且把目光看向了所有人都会有的浏览器。

只要有浏览器就能打开HTML并且解析JavaScript。

解决方案

静态HTML + 简单交互。

再找一个UI库来让界面好看点。

细节展示

一个HTML的例子:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>

<body>
  <div>
    <!-- 这里写UI -->
  </div>
  <script>
    <!-- 这里写逻辑 -->
  </script>
</body>

一个UI的例子

<div class="mt-3 mx-auto p-3 border border-primary" style="width: 600px;">
    <p class="text-center">技能概率计算</p>
    <div class="input-group mb-3">
      <span class="input-group-text" id="basic-addon1">概率:</span>
      <input id="key" type="text" class="form-control" value="1000;1000;1000">
      <button id="button" class="btn btn-outline-secondary" type="button">计算</button>
    </div>
    <div class="input-group mb-3">
      <span class="input-group-text" id="basic-addon1">描述:</span>
      <input id="description" type="text" class="form-control" value="平A 技能A 技能B 防御 绝技">
    </div>
    <pre id="result" class="px-2 text-center"></pre>
  </div>

看起来大概如下所示:

技能概率计算

概率:
描述:

  

一个逻辑的例子

document.getElementById("button").onclick = () => {
      let text = document.getElementById("key").value;
      let descriptions = document.getElementById("description").value.split(" ");

      let result = document.getElementById("result");
      let values = text.split(";").map(a => parseInt(a)).filter(a => Number.isInteger(a));
      let total = values.reduce((a, b) => a + b, 0);
      let valuesProbability = values.map(a => a / total);

      let valuesZip = values.map((e, i) => {
        // return [e, valuesProbability[i]];
        return e + "\t\t" + Math.floor(valuesProbability[i] * 100) + "%\t";
      });

      valuesZip = valuesZip.map((e, i) => {
        let label = descriptions[i] === undefined ? "空" : descriptions[i];
        return label + "\t\t" + e;
      })

      result.innerText = valuesZip.join("\n");
    }

用了一些map & reduce之类的方法,还挺实用的。

results matching ""

    No results matching ""